// components/blog-ctrl/blog-ctrl.js
//头像和昵称等用户信息
let userInfo = {}

//初始化数据库
const db = wx.cloud.database()

Component({
  /**
   * 组件的属性列表
   */
  properties: {
    blogId:String,
    blog:Object,
  },

  //引入组件外部样式
  externalClasses: ['iconfont', 'icon-pinglun8','icon-fenxiang'],

  /**
   * 组件的初始数据
   */
  data: {
    loginShow:false,  //控制授权页面是否显示，切换
    modalShow:false,  //底部弹出层
    content:'', //评论区写入的内容
  },

  /**
   * 组件的方法列表
   */
  methods: {
    //点击评论事件
    onComment(){
      //判断用户是否授权
      wx.getSetting({
        success:(res) => {
          // console.log(res)
          if (res.authSetting['scope.userInfo']) {
            //如果授权过就获取当前的头像和昵称
            wx.getUserInfo({
              success:(res)=>{
                // console.log(res)
                userInfo = res.userInfo
                //显示评论的弹出层
                this.setData({
                  modalShow:true
                })
              }
            })
          }else{
            this.setData({
              loginShow:true
            })
          }
        }
      })
    },
    //授权成功
    onLoginsuccess(event){
      userInfo = event.detail
      //授权框消失，评论框显示
      this.setData({
        loginShow:false,
      },() => {
        this.setData({
          modalShow:true
        })
      })
    },
    //授权失败
    onloginfail(){
      wx.showModal({
        title: '授权用户才能进行评价',
        content: '',
      })
    },
    //获取评论区输入得内容
    // onInput(event){
    //   this.setData({
    //     content:event.detail.value
    //   })
    // },
    //发送事件
    onSend(event){
      // console.log(event)
      let formId = event.detail.formId
      //插入数据库
      let content = event.detail.value.content
      //判断用户输入得内容是否为空
      if (content.trim() == '') {
        wx.showModal({
          title: '评论内容不能为空',
          content: '',
        })
        return
      }
      wx.showLoading({
        title: '评价中',
        mask:true,  //有一个遮盖层，让当前运行时无法进行其他得操作
      })
      //链接数据库,collection 方法获取一个集合的引用
      db.collection('blog-comment').add({
        data:{
          content,
          createTime:db.serverDate(), //取得服务器时间
          blogId:this.properties.blogId,  //获取再小程序端传过来得自动生成得id
          nickName:userInfo.nickName,
          avatarUrl:userInfo.avatarUrl,
        }
      }).then((res)=>{
        //推送模板消息,wx.cloud.callFunction调用云函数
        wx.cloud.callFunction({
          name:'sendMessage',
          data:{
            content,  //内容信息
            formId,   //消息推送
            blogId:this.properties.blogId //当前那个博客得id
          }
        }).then((res)=>{
          console.log(res)
        })

        wx.hideLoading()
        wx.showToast({
          title: '评论成功',
        })
        this.setData({
          modalShow:false,
          content:''
        })
        //父元素刷新评论页面
        this.triggerEvent('refreshCommentList')
      })
     
    },
  }
})
